package skladowisko.transport;

import java.util.Date;
import skladowisko.Kontener;
import skladowisko.ListaWagonowa;
import skladowisko.Pociag;
import skladowisko.Wagon;

/**
 *
 * @author Krzysiek
 */
public class TransportPrzychodzacyBuilder
{
    private TransportPrzychodzacy transport;

    private Pociag pociag;

    public TransportPrzychodzacyBuilder()
    {
        transport = new TransportPrzychodzacy();

    }

    public void ustawPlanowanaDate(Date data)
    {
        transport.setPlanowanaData(data);
    }

    public void stworzPociag(String nazwa, String skad)
    {
        this.pociag = new Pociag(nazwa);
        pociag.setSkad(skad);
    }

    private void dodajWagon(int numer, int iloscMiejsc)
    {
        pociag.dodajWagon(numer, iloscMiejsc);
    }

    public void dodajKontener(int numerWagonu, Kontener k)
    {
        Wagon wagon = pociag.getWagon(numerWagonu);

        if(wagon != null)
        {
            boolean result = wagon.getZawartoscWagonu().polozObiekt(k);
            if(!result)
                throw new IllegalStateException("Wagon jest pelny - nie mozna polozyc na nim kolejnego kontenera!");
        }
        else
        {
            dodajWagon(numerWagonu, Pociag.DOMYSLNA_LICZBA_MIEJSC);
            wagon = pociag.getWagon(numerWagonu);
            boolean result = wagon.getZawartoscWagonu().polozObiekt(k);
        }
    }


    public TransportPrzychodzacy getTransport()
    {
        this.transport.setSrodekTransportu(pociag);
        return this.transport;
    }
}
